| Student ID Number | 134780 |
| Student Name | Trevor Okinda |
| BBIT 4.2 Group | C |
| Project Name | Clothes Price Prediction |
Note: the following KnitR options have been set as
the global defaults:
knitr::opts_chunk$set(echo = TRUE, warning = FALSE, eval = TRUE, collapse = FALSE, tidy = TRUE).
More KnitR options are documented here https://bookdown.org/yihui/rmarkdown-cookbook/chunk-options.html and here https://yihui.org/knitr/options/.
The dataset that was used can be downloaded here: <https://www.kaggle.com/datasets/mrsimple07/clothes-price-prediction\>
<AAbdurakhimov, M. (2024). Clothes Price Prediction [Dataset].
Kaggle. https://www.kaggle.com/datasets/mrsimple07/clothes-price-prediction\>
Refer to the APA 7th edition manual for rules on how to cite datasets:
https://apastyle.apa.org/style-grammar-guidelines/references/examples/data-set-references
# Load necessary library
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
# Load dataset
clothes_data <- read.csv("clothes_price_prediction_data.csv", colClasses = c(
Brand = "factor",
Category = "factor",
Color = "factor",
Size = "factor",
Material = "factor",
Price = "numeric"
))
# Measures of Frequency
frequency_brand <- clothes_data %>% count(Brand)
frequency_category <- clothes_data %>% count(Category)
frequency_color <- clothes_data %>% count(Color)
frequency_size <- clothes_data %>% count(Size)
frequency_material <- clothes_data %>% count(Material)
# Measures of Central Tendency
central_tendency_summary <- summarise(clothes_data,
mean_price = mean(Price),
median_price = median(Price),
mode_price = as.numeric(names(sort(-table(Price))[1])))
# Measures of Distribution
distribution_summary <- summarise(clothes_data,
min_price = min(Price),
max_price = max(Price),
range_price = max_price - min_price,
sd_price = sd(Price),
quantiles_price = quantile(Price))
# Measures of Relationship (Correlation Matrix)
correlation_matrix <- cor(select(clothes_data, -c(1:5))) # Excluding non-numeric columns
# Display results
frequency_brand
## Brand n
## 1 Adidas 166
## 2 New Balance 164
## 3 Nike 165
## 4 Puma 168
## 5 Reebok 158
## 6 Under Armour 179
frequency_category
## Category n
## 1 Dress 166
## 2 Jacket 191
## 3 Jeans 167
## 4 Shoes 172
## 5 Sweater 160
## 6 T-shirt 144
frequency_color
## Color n
## 1 Black 163
## 2 Blue 163
## 3 Green 162
## 4 Red 168
## 5 White 171
## 6 Yellow 173
frequency_size
## Size n
## 1 L 141
## 2 M 157
## 3 S 166
## 4 XL 167
## 5 XS 196
## 6 XXL 173
frequency_material
## Material n
## 1 Cotton 162
## 2 Denim 163
## 3 Nylon 155
## 4 Polyester 175
## 5 Silk 173
## 6 Wool 172
central_tendency_summary
## mean_price median_price mode_price
## 1 106.289 108 97
distribution_summary
## min_price max_price range_price sd_price quantiles_price
## 1 10 199 189 53.69544 10.00
## 2 10 199 189 53.69544 59.75
## 3 10 199 189 53.69544 108.00
## 4 10 199 189 53.69544 150.00
## 5 10 199 189 53.69544 199.00
correlation_matrix
## Price
## Price 1
# Perform ANOVA
anova_result <- aov(Price ~ Category, data = clothes_data)
# Summary of ANOVA
summary(anova_result)
## Df Sum Sq Mean Sq F value Pr(>F)
## Category 5 19986 3997 1.389 0.226
## Residuals 994 2860331 2878
# Load necessary libraries
library(ggplot2)
# Univariate Plot for Price variable
price_plot <- ggplot(clothes_data, aes(x = Price)) +
geom_histogram(fill = "skyblue", color = "black", bins = 30) +
labs(title = "Distribution of Prices", x = "Price", y = "Frequency")
# Univariate Plot for Category variable
category_plot <- ggplot(clothes_data, aes(x = Category)) +
geom_bar(fill = "skyblue", color = "black") +
labs(title = "Frequency of Categories", x = "Category", y = "Frequency") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
# Display univariate plots
price_plot
category_plot
# Load necessary libraries
library(plotly)
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
# Multivariate Plot (Scatter Plot)
multivariate_plot <- plot_ly(data = clothes_data, x = ~Price, y = ~Category, type = "scatter", mode = "markers",
marker = list(color = "rgba(255, 182, 193, 0.7)", size = 10),
text = ~paste("Price: $", Price, "<br>Category: ", Category)) %>%
layout(title = "Price vs. Category", xaxis = list(title = "Price"), yaxis = list(title = "Category"))
# Display multivariate plot
multivariate_plot
# Check for missing values
missing_values <- colSums(is.na(clothes_data))
# Print the count of missing values
print(missing_values)
## Brand Category Color Size Material Price
## 0 0 0 0 0 0
library(caTools)
# Split the dataset into training and testing sets
set.seed(123) # For reproducibility
split <- sample.split(clothes_data$Price, SplitRatio = 0.7)
train_data <- subset(clothes_data, split == TRUE)
test_data <- subset(clothes_data, split == FALSE)
dim(train_data)
## [1] 705 6
dim(test_data)
## [1] 295 6
# Load necessary library
library(boot)
# Define function for bootstrapping
bootstrap_func <- function(data, indices) {
sampled_data <- data[indices, ]
# Perform your analysis or modeling here
# For example, you can fit a linear model:
lm_model <- lm(Price ~ ., data = sampled_data)
# Then return the parameters you're interested in
return(coef(lm_model))
}
# Perform bootstrapping
boot_results <- boot(data = clothes_data, statistic = bootstrap_func, R = 1000)
# View bootstrap results
print(boot_results)
##
## ORDINARY NONPARAMETRIC BOOTSTRAP
##
##
## Call:
## boot(data = clothes_data, statistic = bootstrap_func, R = 1000)
##
##
## Bootstrap Statistics :
## original bias std. error
## t1* 103.9946756 -0.176058274 8.953478
## t2* 12.7264152 -0.005695782 5.809365
## t3* -1.4759025 -0.072089249 6.049415
## t4* 3.4893495 0.012234464 6.027902
## t5* 2.2910323 -0.138050559 6.088725
## t6* 1.2244811 0.237183053 6.028520
## t7* -11.1851208 0.065876361 5.686781
## t8* -13.5825351 0.004832316 5.640385
## t9* -5.5943042 -0.068245969 5.892268
## t10* -6.9070227 0.064744386 5.763138
## t11* -8.6634610 0.083248018 6.120493
## t12* 3.9748481 0.371486263 5.904099
## t13* -0.1240886 -0.076747668 6.393818
## t14* 2.4752797 0.416401538 6.249293
## t15* 10.2723453 0.182177050 5.924423
## t16* 0.6619047 0.336317800 5.941490
## t17* 0.3237057 0.254374254 6.237724
## t18* -2.2713949 0.078197641 6.103603
## t19* -3.4065067 0.070828768 5.994492
## t20* 4.1221479 0.049699966 6.210751
## t21* 4.1679530 -0.137616218 6.131911
## t22* 4.8335319 -0.075381623 5.874020
## t23* 7.1398639 -0.072165958 6.375351
## t24* 3.5608816 -0.153395031 5.816050
## t25* -1.0011056 -0.096619254 6.109084
## t26* 6.4520380 -0.245704792 5.844314
# Load necessary library
library(caret)
## Loading required package: lattice
##
## Attaching package: 'lattice'
## The following object is masked from 'package:boot':
##
## melanoma
# Define cross-validation method
control <- trainControl(method = "cv", number = 10) # 10-fold cross-validation
# Train the model using cross-validation
# For example, let's say you want to train a linear regression model
model <- train(Price ~ ., data = clothes_data, method = "lm", trControl = control)
# View model results
print(model)
## Linear Regression
##
## 1000 samples
## 5 predictor
##
## No pre-processing
## Resampling: Cross-Validated (10 fold)
## Summary of sample sizes: 900, 899, 899, 901, 900, 901, ...
## Resampling results:
##
## RMSE Rsquared MAE
## 54.26426 0.006810947 46.36101
##
## Tuning parameter 'intercept' was held constant at a value of TRUE
# Load necessary library (if not already loaded)
library(caret)
# Define cross-validation method
control <- trainControl(method = "cv", number = 10) # 10-fold cross-validation
# Train the linear regression model using cross-validation
lm_model <- train(Price ~ ., data = clothes_data, method = "lm", trControl = control)
# View model results
print(lm_model)
## Linear Regression
##
## 1000 samples
## 5 predictor
##
## No pre-processing
## Resampling: Cross-Validated (10 fold)
## Summary of sample sizes: 901, 898, 901, 900, 900, 900, ...
## Resampling results:
##
## RMSE Rsquared MAE
## 54.47657 0.008440024 46.5398
##
## Tuning parameter 'intercept' was held constant at a value of TRUE
# Load necessary library (if not already loaded)
library(randomForest)
## randomForest 4.7-1.1
## Type rfNews() to see new features/changes/bug fixes.
##
## Attaching package: 'randomForest'
## The following object is masked from 'package:ggplot2':
##
## margin
## The following object is masked from 'package:dplyr':
##
## combine
# Train the random forest regression model
rf_model <- randomForest(Price ~ ., data = clothes_data)
# View model results
print(rf_model)
##
## Call:
## randomForest(formula = Price ~ ., data = clothes_data)
## Type of random forest: regression
## Number of trees: 500
## No. of variables tried at each split: 1
##
## Mean of squared residuals: 2980.3
## % Var explained: -3.47
# Load necessary library (if not already loaded)
library(gbm)
## Loaded gbm 2.1.8.1
# Train the gradient boosting regression model
gbm_model <- gbm(Price ~ ., data = clothes_data, n.trees = 100, interaction.depth = 4)
## Distribution not specified, assuming gaussian ...
# View model results
print(gbm_model)
## gbm(formula = Price ~ ., data = clothes_data, n.trees = 100,
## interaction.depth = 4)
## A gradient boosted model with gaussian loss function.
## 100 iterations were performed.
## There were 5 predictors of which 5 had non-zero influence.
# Load necessary libraries
library(caret)
library(randomForest)
library(gbm)
# Define cross-validation method
control <- trainControl(method = "cv", number = 10) # 10-fold cross-validation
# Define models
models <- list(
lm = train(Price ~ ., data = clothes_data, method = "lm", trControl = control),
rf = train(Price ~ ., data = clothes_data, method = "rf", trControl = control),
gbm = train(Price ~ ., data = clothes_data, method = "gbm", trControl = control)
)
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2877.4841 nan 0.1000 -8.5976
## 2 2874.7729 nan 0.1000 0.0854
## 3 2873.2883 nan 0.1000 -0.9443
## 4 2871.5005 nan 0.1000 -5.0725
## 5 2867.7853 nan 0.1000 2.9800
## 6 2866.0259 nan 0.1000 -0.6295
## 7 2864.5270 nan 0.1000 -3.2778
## 8 2863.7283 nan 0.1000 -1.5640
## 9 2863.2801 nan 0.1000 -3.7346
## 10 2864.1941 nan 0.1000 -16.5996
## 20 2847.3157 nan 0.1000 -3.7050
## 40 2828.8177 nan 0.1000 -0.1106
## 60 2819.0727 nan 0.1000 -4.1564
## 80 2815.5325 nan 0.1000 -5.2295
## 100 2814.6814 nan 0.1000 -4.2505
## 120 2811.7313 nan 0.1000 -6.2208
## 140 2808.4355 nan 0.1000 -5.1868
## 150 2809.1177 nan 0.1000 -5.4459
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2872.1698 nan 0.1000 1.9881
## 2 2866.2798 nan 0.1000 -1.8009
## 3 2864.6629 nan 0.1000 -6.3534
## 4 2861.2758 nan 0.1000 -2.2144
## 5 2855.8105 nan 0.1000 -3.7186
## 6 2849.5180 nan 0.1000 -2.0078
## 7 2847.0526 nan 0.1000 -6.9505
## 8 2843.6857 nan 0.1000 -3.3934
## 9 2837.5688 nan 0.1000 1.8834
## 10 2835.1921 nan 0.1000 -8.2452
## 20 2806.8879 nan 0.1000 -2.3610
## 40 2758.5259 nan 0.1000 -10.7160
## 60 2723.8978 nan 0.1000 -8.7810
## 80 2693.0236 nan 0.1000 -2.8107
## 100 2663.1287 nan 0.1000 -8.3239
## 120 2627.0393 nan 0.1000 -4.0706
## 140 2597.7912 nan 0.1000 -4.7156
## 150 2588.1699 nan 0.1000 -7.0624
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2872.5442 nan 0.1000 -5.1202
## 2 2865.6533 nan 0.1000 0.1603
## 3 2856.6110 nan 0.1000 1.7767
## 4 2851.4544 nan 0.1000 -4.4491
## 5 2843.9006 nan 0.1000 -10.5736
## 6 2839.6641 nan 0.1000 -3.9022
## 7 2833.8628 nan 0.1000 -4.4018
## 8 2827.9032 nan 0.1000 -6.8916
## 9 2824.0442 nan 0.1000 -14.4997
## 10 2815.5804 nan 0.1000 4.7643
## 20 2771.9622 nan 0.1000 -1.2300
## 40 2708.4856 nan 0.1000 -6.8927
## 60 2647.6975 nan 0.1000 -1.1960
## 80 2599.4259 nan 0.1000 -5.0617
## 100 2555.9757 nan 0.1000 -8.7431
## 120 2519.8542 nan 0.1000 -5.5099
## 140 2497.2436 nan 0.1000 -8.2014
## 150 2481.6140 nan 0.1000 -5.0946
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2857.6364 nan 0.1000 0.8997
## 2 2856.2630 nan 0.1000 -2.6941
## 3 2854.6629 nan 0.1000 -11.6304
## 4 2853.8171 nan 0.1000 -1.7762
## 5 2853.0706 nan 0.1000 -2.5016
## 6 2851.5433 nan 0.1000 -5.0576
## 7 2851.8332 nan 0.1000 -4.3012
## 8 2850.4860 nan 0.1000 -1.2972
## 9 2848.3400 nan 0.1000 0.3666
## 10 2848.1970 nan 0.1000 -1.9853
## 20 2832.8997 nan 0.1000 -1.5280
## 40 2825.1331 nan 0.1000 -1.3407
## 60 2814.3878 nan 0.1000 -1.3519
## 80 2811.2565 nan 0.1000 -10.5302
## 100 2806.8306 nan 0.1000 -0.7728
## 120 2805.3670 nan 0.1000 -5.3748
## 140 2805.1997 nan 0.1000 -4.5883
## 150 2804.8499 nan 0.1000 -2.0271
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2858.8018 nan 0.1000 -8.4496
## 2 2851.9020 nan 0.1000 -1.2248
## 3 2846.3710 nan 0.1000 -2.2470
## 4 2842.0659 nan 0.1000 0.5003
## 5 2838.2282 nan 0.1000 -6.9536
## 6 2838.5835 nan 0.1000 -12.2806
## 7 2833.5434 nan 0.1000 -0.3756
## 8 2829.3333 nan 0.1000 -5.6401
## 9 2827.5709 nan 0.1000 -5.1074
## 10 2823.0029 nan 0.1000 -2.3756
## 20 2793.0847 nan 0.1000 -6.4875
## 40 2754.5318 nan 0.1000 -9.9698
## 60 2723.1670 nan 0.1000 -7.3274
## 80 2687.2631 nan 0.1000 -6.2359
## 100 2659.5932 nan 0.1000 -3.1844
## 120 2641.0976 nan 0.1000 -6.6956
## 140 2615.8372 nan 0.1000 -11.0402
## 150 2606.6612 nan 0.1000 -9.0122
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2849.9513 nan 0.1000 7.5127
## 2 2840.9984 nan 0.1000 -0.1639
## 3 2838.9382 nan 0.1000 -5.8710
## 4 2834.2721 nan 0.1000 -5.8217
## 5 2829.0917 nan 0.1000 -8.1985
## 6 2824.2325 nan 0.1000 -4.3537
## 7 2820.3143 nan 0.1000 1.8185
## 8 2813.3945 nan 0.1000 -1.5427
## 9 2810.9765 nan 0.1000 -12.8696
## 10 2802.7789 nan 0.1000 -6.1681
## 20 2774.4854 nan 0.1000 -2.1110
## 40 2724.6636 nan 0.1000 -3.0613
## 60 2651.8986 nan 0.1000 -9.3277
## 80 2612.7708 nan 0.1000 -7.2584
## 100 2565.1053 nan 0.1000 -10.8426
## 120 2532.4787 nan 0.1000 -7.6541
## 140 2497.6652 nan 0.1000 -4.1595
## 150 2481.8818 nan 0.1000 -5.7319
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2900.6449 nan 0.1000 4.2485
## 2 2897.7704 nan 0.1000 -2.8115
## 3 2893.2783 nan 0.1000 0.8473
## 4 2892.0530 nan 0.1000 -0.9593
## 5 2887.3657 nan 0.1000 -1.2043
## 6 2886.3476 nan 0.1000 -2.5135
## 7 2881.7457 nan 0.1000 0.6584
## 8 2881.4705 nan 0.1000 -4.0490
## 9 2880.4360 nan 0.1000 -5.3022
## 10 2879.4695 nan 0.1000 -1.0131
## 20 2857.9452 nan 0.1000 -0.8391
## 40 2846.0143 nan 0.1000 -3.4985
## 60 2835.9915 nan 0.1000 -2.1638
## 80 2833.7620 nan 0.1000 -0.9674
## 100 2831.6139 nan 0.1000 -2.8452
## 120 2829.3788 nan 0.1000 -2.0982
## 140 2829.3185 nan 0.1000 -7.3177
## 150 2828.6112 nan 0.1000 -1.9042
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2898.2642 nan 0.1000 0.7244
## 2 2891.6408 nan 0.1000 -3.4328
## 3 2882.6415 nan 0.1000 7.3125
## 4 2876.0387 nan 0.1000 2.0541
## 5 2867.8876 nan 0.1000 3.7964
## 6 2865.3677 nan 0.1000 -6.3974
## 7 2863.5619 nan 0.1000 -8.2411
## 8 2856.6461 nan 0.1000 -5.4116
## 9 2857.0970 nan 0.1000 -10.6256
## 10 2855.8292 nan 0.1000 -4.9627
## 20 2822.5640 nan 0.1000 -21.2490
## 40 2779.2823 nan 0.1000 -2.6813
## 60 2728.1299 nan 0.1000 -2.9922
## 80 2699.0207 nan 0.1000 -1.9043
## 100 2670.8769 nan 0.1000 -7.7213
## 120 2649.4616 nan 0.1000 -4.1887
## 140 2614.2956 nan 0.1000 -9.7729
## 150 2602.0297 nan 0.1000 -6.5543
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2897.4424 nan 0.1000 -0.3260
## 2 2886.1952 nan 0.1000 2.7381
## 3 2875.2055 nan 0.1000 1.8867
## 4 2867.3517 nan 0.1000 1.2838
## 5 2858.8890 nan 0.1000 -0.9010
## 6 2850.9502 nan 0.1000 3.2075
## 7 2846.0444 nan 0.1000 -2.2550
## 8 2842.1058 nan 0.1000 -4.1483
## 9 2837.0552 nan 0.1000 -7.9321
## 10 2828.4848 nan 0.1000 0.8398
## 20 2780.0344 nan 0.1000 -4.4131
## 40 2697.5654 nan 0.1000 -2.9370
## 60 2627.3277 nan 0.1000 -9.6477
## 80 2576.1813 nan 0.1000 -7.3158
## 100 2535.2344 nan 0.1000 -11.3704
## 120 2500.2242 nan 0.1000 -8.3532
## 140 2470.4771 nan 0.1000 -4.1817
## 150 2461.1180 nan 0.1000 -7.6101
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2878.0265 nan 0.1000 -4.6980
## 2 2876.8863 nan 0.1000 -1.5309
## 3 2873.3485 nan 0.1000 -1.3977
## 4 2868.3630 nan 0.1000 -0.9484
## 5 2869.9980 nan 0.1000 -6.7128
## 6 2868.0293 nan 0.1000 -2.7720
## 7 2865.2082 nan 0.1000 -7.2666
## 8 2862.8849 nan 0.1000 -0.1072
## 9 2859.7766 nan 0.1000 2.1459
## 10 2858.5928 nan 0.1000 -5.0405
## 20 2840.9907 nan 0.1000 -3.6750
## 40 2823.9650 nan 0.1000 -2.3771
## 60 2816.1705 nan 0.1000 -3.8663
## 80 2811.2339 nan 0.1000 -1.6339
## 100 2806.3096 nan 0.1000 -1.7123
## 120 2803.8473 nan 0.1000 -2.8384
## 140 2802.4476 nan 0.1000 -6.7458
## 150 2800.7376 nan 0.1000 -2.4570
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2876.8234 nan 0.1000 -1.0678
## 2 2871.8491 nan 0.1000 0.1851
## 3 2864.1924 nan 0.1000 -2.1965
## 4 2859.6875 nan 0.1000 -2.8605
## 5 2853.1086 nan 0.1000 -3.1042
## 6 2847.5415 nan 0.1000 -2.2525
## 7 2843.0758 nan 0.1000 -9.0342
## 8 2839.6867 nan 0.1000 -0.3224
## 9 2836.4698 nan 0.1000 -5.2817
## 10 2832.6216 nan 0.1000 -4.4904
## 20 2797.8022 nan 0.1000 -3.6433
## 40 2753.4931 nan 0.1000 -4.7210
## 60 2715.2520 nan 0.1000 -1.5994
## 80 2678.5998 nan 0.1000 -3.5867
## 100 2648.9855 nan 0.1000 -5.4573
## 120 2628.4707 nan 0.1000 -3.9837
## 140 2600.5036 nan 0.1000 -5.7361
## 150 2586.0761 nan 0.1000 -2.0101
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2871.6524 nan 0.1000 1.0557
## 2 2866.7544 nan 0.1000 -6.5344
## 3 2860.0187 nan 0.1000 0.3921
## 4 2854.7858 nan 0.1000 -7.0743
## 5 2853.1739 nan 0.1000 -17.5195
## 6 2847.1537 nan 0.1000 -3.7196
## 7 2841.4728 nan 0.1000 -3.7064
## 8 2837.0521 nan 0.1000 -5.9752
## 9 2829.2182 nan 0.1000 -9.7140
## 10 2824.5707 nan 0.1000 -8.6516
## 20 2772.9077 nan 0.1000 -8.2865
## 40 2700.0401 nan 0.1000 -5.9934
## 60 2640.3732 nan 0.1000 -3.4582
## 80 2596.2760 nan 0.1000 -3.1684
## 100 2560.1181 nan 0.1000 -12.3688
## 120 2515.0188 nan 0.1000 -5.1041
## 140 2482.8238 nan 0.1000 -8.2991
## 150 2468.7403 nan 0.1000 -5.6530
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2866.7775 nan 0.1000 -3.7347
## 2 2864.1790 nan 0.1000 -2.7928
## 3 2862.9808 nan 0.1000 -2.1839
## 4 2858.7680 nan 0.1000 0.6357
## 5 2857.6221 nan 0.1000 -5.4501
## 6 2856.6664 nan 0.1000 -2.5630
## 7 2855.6098 nan 0.1000 -4.0360
## 8 2853.5159 nan 0.1000 -0.3768
## 9 2850.2057 nan 0.1000 -0.6328
## 10 2849.0989 nan 0.1000 -1.1759
## 20 2837.9803 nan 0.1000 -2.4126
## 40 2813.2467 nan 0.1000 -1.8199
## 60 2808.7438 nan 0.1000 -6.8567
## 80 2806.0065 nan 0.1000 -4.2301
## 100 2799.9554 nan 0.1000 -2.8361
## 120 2798.3492 nan 0.1000 -3.3609
## 140 2796.9091 nan 0.1000 -2.3258
## 150 2796.2400 nan 0.1000 -4.4409
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2867.6188 nan 0.1000 -1.1569
## 2 2866.8183 nan 0.1000 -9.4932
## 3 2858.9638 nan 0.1000 -0.0310
## 4 2853.8375 nan 0.1000 -2.7042
## 5 2848.0587 nan 0.1000 0.3742
## 6 2844.4592 nan 0.1000 -2.9841
## 7 2840.9836 nan 0.1000 -1.7983
## 8 2838.2937 nan 0.1000 -6.2225
## 9 2832.3695 nan 0.1000 4.3308
## 10 2831.6365 nan 0.1000 -4.9091
## 20 2792.9946 nan 0.1000 0.8992
## 40 2737.5140 nan 0.1000 -7.2632
## 60 2684.6629 nan 0.1000 -3.1192
## 80 2651.4903 nan 0.1000 -1.2717
## 100 2628.6366 nan 0.1000 -6.0533
## 120 2604.3333 nan 0.1000 -9.1949
## 140 2579.0119 nan 0.1000 -3.8610
## 150 2570.0698 nan 0.1000 -0.6853
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2858.8611 nan 0.1000 4.8559
## 2 2846.7211 nan 0.1000 2.4156
## 3 2838.2424 nan 0.1000 -2.5417
## 4 2829.7012 nan 0.1000 -1.7831
## 5 2823.1371 nan 0.1000 0.7492
## 6 2816.8795 nan 0.1000 -8.2090
## 7 2812.0041 nan 0.1000 -0.2876
## 8 2803.2960 nan 0.1000 -2.9685
## 9 2793.7027 nan 0.1000 1.5533
## 10 2787.7974 nan 0.1000 -1.8727
## 20 2738.8612 nan 0.1000 -1.6673
## 40 2669.6495 nan 0.1000 -5.2632
## 60 2607.0245 nan 0.1000 -3.7313
## 80 2562.9292 nan 0.1000 -6.5996
## 100 2523.7830 nan 0.1000 -5.5052
## 120 2488.3809 nan 0.1000 -5.4844
## 140 2458.5233 nan 0.1000 -2.1878
## 150 2443.2425 nan 0.1000 -13.2163
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2887.6634 nan 0.1000 -2.5300
## 2 2886.6685 nan 0.1000 -1.8904
## 3 2881.9764 nan 0.1000 1.4731
## 4 2880.8955 nan 0.1000 -4.7124
## 5 2875.8051 nan 0.1000 -2.3185
## 6 2873.2571 nan 0.1000 0.4166
## 7 2870.0052 nan 0.1000 1.3961
## 8 2868.1192 nan 0.1000 -5.3300
## 9 2866.4801 nan 0.1000 -0.6217
## 10 2866.9196 nan 0.1000 -7.3522
## 20 2861.6617 nan 0.1000 -2.2057
## 40 2845.9758 nan 0.1000 -4.0688
## 60 2839.9095 nan 0.1000 -3.5493
## 80 2832.2332 nan 0.1000 -1.3426
## 100 2831.5978 nan 0.1000 -4.3110
## 120 2830.8191 nan 0.1000 -5.5761
## 140 2826.6418 nan 0.1000 -2.0301
## 150 2825.5639 nan 0.1000 -1.9418
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2881.5731 nan 0.1000 -0.1132
## 2 2876.6877 nan 0.1000 1.1400
## 3 2871.7699 nan 0.1000 -1.9369
## 4 2866.5624 nan 0.1000 -0.5577
## 5 2863.1936 nan 0.1000 -2.1850
## 6 2856.3935 nan 0.1000 1.6793
## 7 2852.0362 nan 0.1000 -0.8293
## 8 2848.5708 nan 0.1000 -6.7603
## 9 2846.6391 nan 0.1000 -7.7730
## 10 2843.7362 nan 0.1000 0.6370
## 20 2822.3681 nan 0.1000 -3.8685
## 40 2765.0725 nan 0.1000 -0.5206
## 60 2726.9626 nan 0.1000 -3.0655
## 80 2691.4782 nan 0.1000 -3.8814
## 100 2659.8442 nan 0.1000 -8.1370
## 120 2635.7723 nan 0.1000 -6.7375
## 140 2612.5980 nan 0.1000 -7.3621
## 150 2599.5863 nan 0.1000 -4.2082
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2879.5609 nan 0.1000 1.5153
## 2 2873.3981 nan 0.1000 -1.8588
## 3 2866.1329 nan 0.1000 -4.2674
## 4 2860.0987 nan 0.1000 -1.2618
## 5 2857.6552 nan 0.1000 -10.4648
## 6 2853.5795 nan 0.1000 -7.6860
## 7 2846.2159 nan 0.1000 -3.2636
## 8 2842.6125 nan 0.1000 -6.1163
## 9 2837.7543 nan 0.1000 -2.5709
## 10 2834.3281 nan 0.1000 -1.8717
## 20 2786.9996 nan 0.1000 -2.0334
## 40 2716.9106 nan 0.1000 -2.6313
## 60 2650.7240 nan 0.1000 -8.4750
## 80 2601.3886 nan 0.1000 -6.3543
## 100 2555.4163 nan 0.1000 -1.9851
## 120 2525.9435 nan 0.1000 -4.9808
## 140 2489.8757 nan 0.1000 -8.7439
## 150 2471.6860 nan 0.1000 -10.3766
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2885.5439 nan 0.1000 -5.3517
## 2 2882.8115 nan 0.1000 1.6247
## 3 2881.9932 nan 0.1000 -4.9145
## 4 2880.9966 nan 0.1000 -0.9024
## 5 2877.2899 nan 0.1000 2.4611
## 6 2877.7702 nan 0.1000 -4.0465
## 7 2875.7599 nan 0.1000 -6.3433
## 8 2871.4579 nan 0.1000 -0.7410
## 9 2868.6621 nan 0.1000 -0.4464
## 10 2868.0315 nan 0.1000 -1.1131
## 20 2852.6638 nan 0.1000 -2.2870
## 40 2837.3551 nan 0.1000 -4.1441
## 60 2828.8764 nan 0.1000 -4.2301
## 80 2825.6037 nan 0.1000 -2.4784
## 100 2821.3634 nan 0.1000 -5.4609
## 120 2819.2748 nan 0.1000 -1.6319
## 140 2822.1783 nan 0.1000 -2.3167
## 150 2821.5863 nan 0.1000 -0.9980
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2880.2752 nan 0.1000 0.2914
## 2 2875.5655 nan 0.1000 -0.9232
## 3 2868.8424 nan 0.1000 -4.8645
## 4 2868.0229 nan 0.1000 -3.3529
## 5 2865.4771 nan 0.1000 0.1136
## 6 2858.1859 nan 0.1000 0.0311
## 7 2854.8150 nan 0.1000 -5.0057
## 8 2852.1780 nan 0.1000 -0.7913
## 9 2849.2063 nan 0.1000 -0.2965
## 10 2846.5279 nan 0.1000 -5.4226
## 20 2816.7135 nan 0.1000 -4.1373
## 40 2769.4617 nan 0.1000 -6.5152
## 60 2730.8567 nan 0.1000 -0.4073
## 80 2698.6489 nan 0.1000 -4.6417
## 100 2675.7511 nan 0.1000 -7.9996
## 120 2638.5015 nan 0.1000 -4.1663
## 140 2606.6257 nan 0.1000 -1.9673
## 150 2594.5260 nan 0.1000 -5.1137
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2878.9420 nan 0.1000 4.3514
## 2 2866.6113 nan 0.1000 -6.2095
## 3 2858.9431 nan 0.1000 -8.7258
## 4 2848.4234 nan 0.1000 -3.3755
## 5 2841.5710 nan 0.1000 -1.3437
## 6 2839.3121 nan 0.1000 -10.5202
## 7 2836.0731 nan 0.1000 -7.9292
## 8 2830.6291 nan 0.1000 -2.4390
## 9 2822.5890 nan 0.1000 3.0773
## 10 2821.6140 nan 0.1000 -9.8762
## 20 2777.0804 nan 0.1000 -7.0423
## 40 2693.6129 nan 0.1000 -5.9322
## 60 2640.2831 nan 0.1000 -4.2807
## 80 2604.2492 nan 0.1000 -5.4504
## 100 2563.3600 nan 0.1000 -3.8989
## 120 2525.5341 nan 0.1000 -5.5163
## 140 2489.2169 nan 0.1000 -4.2608
## 150 2476.3781 nan 0.1000 -4.5966
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2859.9191 nan 0.1000 1.8826
## 2 2858.1917 nan 0.1000 1.2405
## 3 2857.9873 nan 0.1000 -8.0022
## 4 2855.5709 nan 0.1000 1.4045
## 5 2853.7076 nan 0.1000 0.0765
## 6 2853.4375 nan 0.1000 -4.1078
## 7 2850.7397 nan 0.1000 1.3199
## 8 2848.7585 nan 0.1000 0.6590
## 9 2848.7362 nan 0.1000 -4.6156
## 10 2846.3052 nan 0.1000 -0.7759
## 20 2839.0959 nan 0.1000 -3.3897
## 40 2828.5282 nan 0.1000 -4.0355
## 60 2821.4907 nan 0.1000 -4.5115
## 80 2819.5141 nan 0.1000 -8.6125
## 100 2818.1511 nan 0.1000 -4.7882
## 120 2817.2315 nan 0.1000 -3.0946
## 140 2815.3009 nan 0.1000 -4.9027
## 150 2815.2328 nan 0.1000 -1.6269
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2860.8344 nan 0.1000 -4.6749
## 2 2858.8695 nan 0.1000 -7.5417
## 3 2854.7456 nan 0.1000 -4.2186
## 4 2849.9368 nan 0.1000 -1.0558
## 5 2847.7607 nan 0.1000 -5.7387
## 6 2841.8539 nan 0.1000 1.9808
## 7 2838.5531 nan 0.1000 -4.8186
## 8 2835.5886 nan 0.1000 -0.5434
## 9 2830.3198 nan 0.1000 -0.1733
## 10 2826.2868 nan 0.1000 -5.3952
## 20 2793.1111 nan 0.1000 -1.9113
## 40 2745.4974 nan 0.1000 -5.3485
## 60 2716.7476 nan 0.1000 -8.3996
## 80 2681.0544 nan 0.1000 -4.6257
## 100 2645.6979 nan 0.1000 -1.2539
## 120 2611.6550 nan 0.1000 -2.2802
## 140 2590.3705 nan 0.1000 -7.9081
## 150 2577.8393 nan 0.1000 -5.7950
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2856.7740 nan 0.1000 -0.8334
## 2 2850.4668 nan 0.1000 -0.1806
## 3 2840.0179 nan 0.1000 0.3189
## 4 2833.2498 nan 0.1000 -3.6930
## 5 2827.9139 nan 0.1000 -5.7216
## 6 2818.7207 nan 0.1000 -2.0684
## 7 2814.7782 nan 0.1000 -4.5162
## 8 2809.7157 nan 0.1000 -3.5505
## 9 2806.7192 nan 0.1000 -9.2428
## 10 2801.1367 nan 0.1000 -5.4555
## 20 2754.1550 nan 0.1000 -5.8780
## 40 2683.7256 nan 0.1000 -4.6963
## 60 2642.2437 nan 0.1000 -11.8283
## 80 2608.4016 nan 0.1000 -6.9441
## 100 2563.6094 nan 0.1000 -6.8538
## 120 2528.8026 nan 0.1000 0.5016
## 140 2489.6901 nan 0.1000 -6.6403
## 150 2480.9355 nan 0.1000 -7.2612
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2880.8140 nan 0.1000 -4.4420
## 2 2876.8908 nan 0.1000 1.0860
## 3 2874.4498 nan 0.1000 -1.7856
## 4 2873.1408 nan 0.1000 -10.2952
## 5 2872.2192 nan 0.1000 -2.1046
## 6 2871.7386 nan 0.1000 -2.8697
## 7 2870.0943 nan 0.1000 0.6451
## 8 2867.9646 nan 0.1000 -0.4219
## 9 2864.6630 nan 0.1000 -0.1575
## 10 2860.9931 nan 0.1000 1.8211
## 20 2847.8709 nan 0.1000 -1.4479
## 40 2826.6171 nan 0.1000 -5.4228
## 60 2820.0944 nan 0.1000 -4.7208
## 80 2816.1935 nan 0.1000 -2.8116
## 100 2813.2686 nan 0.1000 -4.1148
## 120 2811.0730 nan 0.1000 -1.7159
## 140 2809.8587 nan 0.1000 -5.3937
## 150 2809.6192 nan 0.1000 -3.3073
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2876.6424 nan 0.1000 -0.8512
## 2 2871.4926 nan 0.1000 -0.7124
## 3 2866.7729 nan 0.1000 -1.4626
## 4 2862.6872 nan 0.1000 -2.0045
## 5 2856.0041 nan 0.1000 -1.9808
## 6 2852.3292 nan 0.1000 -1.2619
## 7 2849.4040 nan 0.1000 -13.1900
## 8 2847.7735 nan 0.1000 -2.4023
## 9 2844.0540 nan 0.1000 -9.8178
## 10 2841.4320 nan 0.1000 -0.8497
## 20 2812.1661 nan 0.1000 -8.3949
## 40 2779.5068 nan 0.1000 -3.0752
## 60 2737.8551 nan 0.1000 -8.3603
## 80 2700.6662 nan 0.1000 -8.8677
## 100 2670.7491 nan 0.1000 -0.8458
## 120 2633.8516 nan 0.1000 -3.9636
## 140 2609.5115 nan 0.1000 -1.6489
## 150 2600.8672 nan 0.1000 -6.3688
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2872.6290 nan 0.1000 5.4092
## 2 2863.5126 nan 0.1000 -0.7044
## 3 2852.6203 nan 0.1000 1.5520
## 4 2847.1173 nan 0.1000 1.2483
## 5 2842.9374 nan 0.1000 -6.1527
## 6 2838.8589 nan 0.1000 -4.7158
## 7 2834.1671 nan 0.1000 -1.2343
## 8 2830.9159 nan 0.1000 -2.5149
## 9 2824.2824 nan 0.1000 -3.5126
## 10 2821.6286 nan 0.1000 -8.2981
## 20 2780.9681 nan 0.1000 -4.8858
## 40 2717.5571 nan 0.1000 -3.4258
## 60 2659.4789 nan 0.1000 -10.0698
## 80 2609.4153 nan 0.1000 -6.0808
## 100 2567.0680 nan 0.1000 -9.3671
## 120 2519.8395 nan 0.1000 -6.5225
## 140 2488.2086 nan 0.1000 -8.8028
## 150 2475.4327 nan 0.1000 -8.5764
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2882.6546 nan 0.1000 -2.9853
## 2 2878.6034 nan 0.1000 -2.2090
## 3 2871.1687 nan 0.1000 -4.3108
## 4 2868.9141 nan 0.1000 -4.7797
## 5 2865.0622 nan 0.1000 1.9764
## 6 2861.6847 nan 0.1000 0.0168
## 7 2859.6240 nan 0.1000 0.9328
## 8 2860.1107 nan 0.1000 -2.4314
## 9 2857.6165 nan 0.1000 0.5978
## 10 2856.0053 nan 0.1000 0.5043
## 20 2843.6671 nan 0.1000 -1.2104
## 40 2830.6144 nan 0.1000 -1.2076
## 60 2826.6900 nan 0.1000 -1.5363
## 80 2821.5373 nan 0.1000 -4.5951
## 100 2818.3913 nan 0.1000 -2.8183
## 120 2818.2948 nan 0.1000 -4.9678
## 140 2816.0282 nan 0.1000 -4.7987
## 150 2816.6147 nan 0.1000 -3.8457
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2877.0779 nan 0.1000 -1.6748
## 2 2871.2394 nan 0.1000 0.0910
## 3 2868.7627 nan 0.1000 -7.4134
## 4 2866.5950 nan 0.1000 -9.0456
## 5 2862.0327 nan 0.1000 1.4953
## 6 2857.2298 nan 0.1000 -1.9316
## 7 2851.2064 nan 0.1000 -1.6301
## 8 2849.2325 nan 0.1000 -3.2945
## 9 2845.4490 nan 0.1000 -5.9850
## 10 2838.4848 nan 0.1000 2.9697
## 20 2806.7796 nan 0.1000 -4.5084
## 40 2773.1175 nan 0.1000 -2.7807
## 60 2729.6206 nan 0.1000 0.1635
## 80 2698.7605 nan 0.1000 -3.6817
## 100 2670.2152 nan 0.1000 -5.1685
## 120 2645.4286 nan 0.1000 -7.7420
## 140 2625.0782 nan 0.1000 -4.2675
## 150 2614.9107 nan 0.1000 -5.4635
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2873.3425 nan 0.1000 -0.2603
## 2 2867.6718 nan 0.1000 -5.5668
## 3 2862.8327 nan 0.1000 -4.9171
## 4 2859.1745 nan 0.1000 -9.5109
## 5 2853.7025 nan 0.1000 -4.3341
## 6 2846.7484 nan 0.1000 -2.0629
## 7 2840.8547 nan 0.1000 -5.6076
## 8 2833.7663 nan 0.1000 3.2837
## 9 2828.6709 nan 0.1000 -5.6627
## 10 2822.3630 nan 0.1000 -3.8818
## 20 2782.5980 nan 0.1000 -11.0269
## 40 2716.1324 nan 0.1000 -3.0718
## 60 2665.5579 nan 0.1000 -5.2026
## 80 2614.6073 nan 0.1000 -5.9662
## 100 2576.2881 nan 0.1000 -5.4988
## 120 2536.8119 nan 0.1000 -9.1765
## 140 2502.1017 nan 0.1000 -3.8239
## 150 2485.1949 nan 0.1000 -5.4755
##
## Iter TrainDeviance ValidDeviance StepSize Improve
## 1 2879.9059 nan 0.1000 -2.2977
## 2 2878.9960 nan 0.1000 -4.5937
## 3 2877.3833 nan 0.1000 -0.2230
## 4 2874.0609 nan 0.1000 2.6541
## 5 2872.5247 nan 0.1000 -1.9505
## 6 2871.9310 nan 0.1000 -1.7693
## 7 2869.3586 nan 0.1000 1.4945
## 8 2869.3287 nan 0.1000 -6.0918
## 9 2866.2251 nan 0.1000 -1.1106
## 10 2863.1266 nan 0.1000 -1.1156
## 20 2848.5501 nan 0.1000 -4.5982
## 40 2836.8247 nan 0.1000 -4.4006
## 50 2832.0783 nan 0.1000 -1.9073
# Compare model performance using resamples
model_resamples <- resamples(models)
# Summarize model performance
summary(model_resamples)
##
## Call:
## summary.resamples(object = model_resamples)
##
## Models: lm, rf, gbm
## Number of resamples: 10
##
## MAE
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## lm 44.24859 45.69267 46.55061 46.43554 46.99314 49.01952 0
## rf 42.53148 45.53006 46.59841 46.40882 47.81636 48.31262 0
## gbm 45.01225 45.40984 46.49281 46.10238 46.73956 46.77336 0
##
## RMSE
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## lm 51.29051 53.62841 54.51740 54.34704 55.13459 56.98366 0
## rf 50.64567 54.04600 54.72624 54.30937 55.19142 55.60999 0
## gbm 52.87597 53.13649 53.92786 53.88261 54.59504 54.90752 0
##
## Rsquared
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## lm 1.169080e-03 0.0017467013 0.003532283 0.007818354 0.006357887 0.02786118
## rf 1.109261e-05 0.0015249366 0.003590765 0.013240308 0.009365855 0.09161212
## gbm 8.103791e-06 0.0008240705 0.005003803 0.008418868 0.015568902 0.02534799
## NA's
## lm 0
## rf 0
## gbm 0
# Plot model performance
dotplot(model_resamples)
# Saving the Linear Regression model
saveRDS(lm_model, "./models/saved_lm_model.rds")
# Load the saved model
loaded_lm_model <- readRDS("./models/saved_lm_model.rds")
# Prepare new data for prediction
new_data <- data.frame(
Brand = "New Balance",
Category = "Dress",
Color = "White",
Size = "XS",
Material = "Nylon"
)
# Use the loaded model to make predictions
predictions_loaded_model <- predict(loaded_lm_model, newdata = new_data)
# Print predictions
print(predictions_loaded_model)
## 1
## 138.2554